package com.class04.base;

import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ClassDescription:
 * @JdkVersion: 17
 * @Author: yxy
 * @Created: 2024/1/4 10:16
 */
public class TestHash {
    private Jedis jedis = new Jedis("127.0.0.1", 6379);

    @Test
    public void test1() {
        Map<String, String> map = new HashMap<>();
        map.put("name", "yxy");
        map.put("age", "20");
        String s = jedis.hmset("user", map);
        System.out.println("s = " + s);
    }

    @Test
    public void test2() {
//        List<String> hmGet = jedis.hmget("user", "name", "age");
//        hmGet.forEach(System.out::println);

//        	HEXISTS key field
//查看哈希表 key 中，指定的字段是否存在。
//        boolean b = jedis.hexists("user", "sex");
//        System.out.println("b = " + b);

//        HGETALL key
//        获取在哈希表中指定 key 的所有字段和值
//        jedis.hgetAll("user").forEach((k, v) -> System.out.println(k + " = " + v));


//        	HINCRBY key field increment
//为哈希表 key 中的指定字段的整数值加上增量 increment 。
//        long l = jedis.hincrBy("user", "age", 20);
//        System.out.println("l = " + l);
//        System.out.println(jedis.hmget("user", "age"));


//        HKEYS key
//获取哈希表中的所有字段
        jedis.hkeys("user").forEach(System.out::println);

//        	HLEN key
//获取哈希表中字段的数量
        long user = jedis.hlen("user");
        System.out.println("user = " + user);

//        HMGET key field1 [field2]
//        获取所有给定字段的值
        jedis.hmget("user", "name", "age").forEach(System.out::println);

//        HSETNX key field value
//只有在字段 field 不存在时，设置哈希表字段的值。

        System.out.println(jedis.hsetnx("user", "sex", "male"));
        System.out.println(jedis.hmget("user", "sex"));
//        HVALS key
//获取哈希表中所有值。
        jedis.hvals("user").forEach(System.out::println);



    }

}
